import axios from 'axios';
import { Message } from 'element-ui';
import router from "../router" //拿到路由对象，路由器，挂在在vue实例上的路由器

const service = axios.create({
    // process.env.NODE_ENV === 'development' 来判断是否开发环境
    // easy-mock服务挂了，暂时不使用了
    baseURL: 'http://localhost:8888/',
    timeout: 5000
});

//请求拦截
service.interceptors.request.use(
    config => {
        let token = localStorage.getItem("token");
        if(token){
            config.headers.token = token
        }
        return config;
    },
    error => {
        console.log(error);
        return Promise.reject();
    }
);

//响应拦截
service.interceptors.response.use(
    response => {
        if (response.status === 200) { //基于http协议的响应结果如果为200，那么返回数据内容
            if(response.data.code===200){ //接口的业务响应结果
                return response.data;
            }
            Message.error(response.data.data); //如果业务失败(业务状态码非200，都是失败)，给出错误提示。
            //如果状态吗现在是30002，代表没有登录，是否跳转回登录页面？怎么跳转
            if(response.data.code===30002){ //代表哦用户灭有登录
                //跳转到登录页面。
                router.push("/login")                
            }
        } 
            return Promise.reject();
    },
    error => {
        console.log(error);
        return Promise.reject();
    }
);

export default service;  //将来引入的时候，可以直接写import xxx from "utils/request.js"
                         //如果导出时没有写default，
                         //那么引入时需要使用 import { 需要导出的函数/变量名 } from "xxxxx.js";
